import axios from 'axios';
import qs from 'querystring';
import { global } from '@/config/config';
axios.defaults.baseURL = global.BaseURL;
axios.defaults.timeout = 30000

// axios请求拦截器
axios.interceptors.request.use((config) => { //拦截器处理
    // if (config.method === 'get') {
    //     config.params = {
    //         ...config.data,
    //         _t: Date.parse(new Date()) / 1000
    //     }
    // }
    return config
})

// axios响应拦截器
axios.interceptors.response.use(response => { //请求返回数据处理
    if (response.status === '200' || response.status === 200) {
        return response.data.data || response.data
    } else {
        // 非200请求抱错
        throw Error(response.opt || 'Service Exception')
    }
})

export default class http {
    static async get(url, params, config) {
        /**
        * params{
        * goods：id，
        * name：string
        * } ==> ?goods=id&name=string
        */
        try {
            let res = null;
            if (!params) {
                res = await axios.get(url, config)
            } else {
                let query = qs.stringify(params)
                res = await axios.get(url + '?' + query, config)
            }
            return res
        } catch (error) {
            return error
        }
    }
    static async post(url, params, config) {
        try {
            let res = await axios.post(url, params, config)
            return res
        } catch (error) {
            return error
        }
    }
}